package cl.pelu.bpro;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import cl.pelu.dao.PeluIbatisDao;
import cl.pelu.model.bo.dvo.BoletaBO;
import cl.pelu.model.bo.dvo.BoletaDVO;
import cl.pelu.model.bo.dvo.ClienteDVO;
import cl.pelu.model.bo.dvo.DetalleDVO;
import cl.pelu.model.bo.dvo.FormulaDVO;
import cl.pelu.model.bo.dvo.ServicioBO;
import cl.pelu.model.bo.dvo.ServicioDVO;
import cl.pelu.model.bo.dvo.TablaDVO;
import cl.pelu.model.bo.dvo.TipoCabelloDVO;

public interface PeluBusiness {
	
	void setpeluIbatisDaoImpl(PeluIbatisDao peluIbatisDao);
	
	public TablaDVO[] getBases() throws SQLException;
	public TablaDVO[] getGramos() throws SQLException;
	public TablaDVO[] getOxidante() throws SQLException;
	public TablaDVO[] getMatiz() throws SQLException;
	public TablaDVO[] getGramosMatiz() throws SQLException;
	public TablaDVO[] getTipoCabello() throws SQLException;
	public TablaDVO[] getServicio() throws SQLException;
	public int getPrecioByNombreTipoCabello(String nombreServicio ,  String tipoCabello) throws SQLException;
	public void insertBoleta(BoletaDVO boleta) throws SQLException;
	public int insertDetalle(DetalleDVO detalle) throws SQLException;
	public int insertFormula(FormulaDVO formula) throws SQLException;
	public void guardarBoleta(BoletaBO boleta) throws SQLException;

	public int  getIdUltimaBoleta () throws SQLException;
	public BoletaDVO getBoletaById(int id) throws SQLException;
	public BoletaDVO[] getBoletaByFechas(Date fechaDesde , Date fechaHasta) throws SQLException;
	public ServicioBO[] getServicios(ServicioDVO servicio) throws SQLException;
	public int insertServicio(ServicioDVO servicio) throws SQLException ;
	public void updateServicio(ServicioDVO servicio) throws SQLException ;
	public void deleteServicioById(int id) throws SQLException ;
	public TipoCabelloDVO[] getTipoCabelloByNombre(String nombre) throws SQLException ;
	public int getPrecioByNombre(String nombre) throws SQLException ;
	public int isFormulaByNombre(String nombre) throws SQLException;
	public int isFormulaByNombreTipoCabello(String nombreServicio ,  String tipoCabello) throws SQLException;
	public void eliminarBoleta(int id) throws SQLException;
	public BoletaBO getBoletaBObyId(int id) throws SQLException;
	public TablaDVO[] getServicioAgrupado() throws SQLException;
	public TablaDVO getGramosById(int id) throws SQLException;
	public TablaDVO getMatizById(int id) throws SQLException;
	public TablaDVO getOxidanteById(int id) throws SQLException;
	public TablaDVO getGramosMatizById(int id) throws SQLException;
	public TablaDVO getTipoCabelloById(int id) throws SQLException;
	public ArrayList <ClienteDVO> getClientes(ClienteDVO cliente) throws SQLException;
	public ClienteDVO getClientesByRut(String rut) throws SQLException;
	public void eliminarClientesByRut(String rut) throws SQLException;
	public void updateClienteByRut(ClienteDVO cliente) throws SQLException;
	public int insertCliente(ClienteDVO cliente) throws SQLException;
	public void actualizarBoleta(BoletaBO boleta) throws SQLException;
	public void eliminarDetalleBoleta(int id) throws SQLException ;
	public BoletaDVO[] getBoletaByCliente(String rut) throws SQLException ;
	
	
}
